AppUserForm = Ext.extend(Ext.Window, {
	formPanel : null,
	constructor : function(a) {
		Ext.applyIf(this, a);
		this.initUIComponents();
		AppUserForm.superclass.constructor.call(this, {
			layout : "fit",
			id : "AppUserFormWin",
			iconCls : "menu-dictionary",
			items : this.formPanel,
			title : "系统用户信息",
			width : 380,
			height : 220,
			modal : true,
			buttonAlign : "center",
			buttons : this.buttons
		});
	},
	initUIComponents : function() {
		
//		var staffStore  = ;
//		staffStore.setDefaultSort("id", "ASC"); 
		
		this.formPanel = new Ext.FormPanel({
			url : __ctxPath + "/system/saveAppUser.do",
			layout : "form",
			id : "AppUserForm",
			bodyStyle : "padding:5px",
			border : false,
			formId : "AppUserFormId",
//			defaultType : "textfield",
			defaults : {
				anchor : "98%,98%"
			},
			items : [{
				xtype : "hidden",
				value : this.userId==null ? "" : this.userId,
				name : "appUser.userId"
			}, {
				xtype : "hidden",
				name : "appUser.staff.id"
			},{
				xtype : "hidden",
				name : "appUser.appRole.roleId"
			},{
				xtype : "textfield",
				fieldLabel : "账号"+ '<font color=red>*</font>',
				name : "appUser.username",
				allowBlank : false,
				blankText : "账号不能为空!"
			}, {
				xtype : "textfield",
				fieldLabel : "密码"+ '<font color=red>*</font>',
//				inputType : "password",
				name : "appUser.password",
				allowBlank : false,
				blankText : "密码不能为空!"
			},{//第一行 
				layout : "column",
				bodyStyle : "border:0px;",
				items : [
						{
							columnWidth : .7,//第一列 
							layout : "form",
							border : false,
							items : [ {
								xtype : "textfield",
								width : 200,
								fieldLabel : '选择人员'	+ '<font color=red>*</font>',
								name : 'appUser.staff.name',
								allowBlank : false,
								blankText : "人员为空"
							} ]
						},
						{
							columnWidth : .3,//第一列 
							layout : "form",
							border : false,
//							bodyStyle : "padding:5px;",
							items : [ {
								text : "选择",
								width : 50,
								xtype : 'button',
								handler : function() {
									UserSelector.getView({
										 	callback : function(records){
						                        	    var appUserForm = Ext.getCmp("AppUserForm").getForm();
							                       		appUserForm.findField("appUser.staff.id").setValue(records[0].data.id);
							                       		appUserForm.findField("appUser.staff.name").setValue(records[0].data.name);
						                    },
						                    multiSel : false
									}).show();
								}
							} ]
						} ]
			},{
				//第二行 
				layout : "column",
				bodyStyle : "border:0px;",
				items : [
						{
							columnWidth : .7,//第一列 
							layout : "form",
							border : false,
//							bodyStyle : "padding:5px;",
							items : [ {
								xtype : "textfield",
								width : 200,
								fieldLabel : '选择角色'	+ '<font color=red>*</font>',
								name : 'appUser.appRole.roleName',
								allowBlank : false,
								blankText : "角色为空"
							} ]
						},
						{
							columnWidth : .3,//第一列 
							layout : "form",
							border : false,
//							bodyStyle : "padding:5px;",
							items : [ {
								text : "选择",
								width : 50,
								xtype : 'button',
								handler : function() {
									RoleSelector.getView().show();
								}
							} ]
						} ]
			} ]
		});
		Ext.getCmp("AppUserForm").getForm().reset();
		if (this.userId != null && this.userId != "undefined") {
			
//			this.formPanel.getForm().load(
//					{
//						deferredRender : false,
//						url : __ctxPath + "/system/getAppUser.do?appUser.userId="+ this.userId,
//						waitMsg : "正在载入数据...",
//						success : function(a, b) {
//						},
//						failure : function(a, b) {
//						}
//					});
			
			this.formPanel.loadData({
				url : __ctxPath + "/system/getAppUser.do?appUser.userId="+ this.userId,
				preName : "appUser",
				root : "result",
				success : function(form, action) {
//					var formValues  = Ext.getCmp("AppUserForm").getForm().getValues(); //获取表单中的所有Name键/值对对象
//					var obj = Ext.decode(form.responseText).result;
					var AppUserForm  = Ext.getCmp("AppUserForm").getForm();
					AppUserForm.findField("appUser.username").setReadOnly(true);
					AppUserForm.findField("appUser.password").hide();
				} 
			
			});
		}
		this.buttons = [ {
			text : "保存",
			iconCls : "btn-save",
			handler : this.save.createCallback(this.formPanel, this)
		}, {
			text : "重置",
			iconCls : "btn-reset",
			handler : this.reset.createCallback(this.formPanel)
		}, {
			text : "取消",
			iconCls : "btn-cancel",
			handler : this.cancel.createCallback(this)
		} ];
	},
	reset : function(a) {
		a.getForm().reset();
	},
	cancel : function(a) {
		a.close();
	},
	save : function(a, b) {
		var c = b.callback;
		if (a.getForm().isValid()) {
			a.getForm().submit({
				method : "POST",
				waitMsg : "正在提交数据...",
				success : function(d, e) {
					Ext.ux.Toast.msg("操作信息", "成功保存信息！");
					if (b.callback) {
						b.callback.call(this);
					}
					Ext.getCmp("AppUserGrid").getStore().reload();
					b.close();
				},
				failure : function(d, e) {
					var result = e.result;
					Ext.MessageBox.show({
						title : "操作信息",
						msg : result.msg == null ? "信息保存出错，请联系管理员！" : result.msg,
						buttons : Ext.MessageBox.OK,
						icon : Ext.MessageBox.ERROR
					});
					b.close();
				}
			});
		}
	}
});